IF exists(SELECT * FROM dbo.sysobjects WHERE name='vulTellingOktober' AND xtype='P') 
BEGIN
	DROP PROCEDURE vulTellingOktober
END
GO

CREATE     procedure vulTellingOktober
as

declare @vorigJaar varchar(4)
set @vorigJaar = convert(varchar(4),datePart(yyyy,getDate()) - 1)

-- Uit historiek worden enkel de meest recente gegevens van het vorig schooljaar 
-- gecopieerd in een hulptabel

select * into #historiekHulptabel

from studiegegevens..historiek
where not inschrijvingsNr in
	(select h.inschrijvingsNr from studiegegevens..historiek as h
	left join studiegegevens..historiek as hh
	on h.inschrijvingsNr = hh.inschrijvingsNr
	  and h.schooljaar = hh.schooljaar
	where h.schooljaar = @vorigJaar
  		and (h.datum > hh.datum))
  and schooljaar = @vorigjaar
UNION
select h.* from studiegegevens..historiek as h
  left join studiegegevens..historiek as hh
    on h.inschrijvingsNr = hh.inschrijvingsNr
      and h.schooljaar = hh.schooljaar
where h.schooljaar = @vorigjaar
  and (h.datum > hh.datum)

delete from tellingOktoberHulptabel

insert into tellingOktoberHulptabel(stamnr,famnaam, voornaam1,identificatieNr,
	straat,huisNr,busNr,postCode,
	natiecode,geboorteDatum,geslacht,
	instelling,adminGroep,hoofdstru,
	vtaal1,vtaal2,vtaal3,vtaal4,vtaal5,vtaal6,
	vHoofdstru,vAdminGroep,vInstelling,vAttest,gestartOp)

select  l.stamNr,left(l.achternaam,50),left(l.voornaam,30),
	left(a.identiteitskaart,11),
	left( a.straat,33),left(a.nummer,4),left(a.busnummer,6),a.postcode,
	left(a.nationaliteit,5),a.geboortedatum,upper(Left(a.geslacht,1)),
 	v.instelling,v.administratieveGroep,v.hoofdstructuur,
	isNull(v.vreemdeTaal1,'0000'),isNull(v.vreemdeTaal2,'0000'),isNull(v.vreemdeTaal3,'0000'),
	isNull(v.vreemdeTaal4,'0000'),isNull(v.vreemdeTaal5,'0000'),isNull(v.vreemdeTaal6,'0000'),
        case left(l.klas,1) when '1' then '211' else '311' end,
	isNull(vtk.administratieveGroep,'000000'),
	isNull(vk.schoolnummer,'000000'),
	isNull(b.attest,'4'),
	start.gestart
from leerlingen as l
	left join vertaaltabelKlas as v 
	  on v.klas= l.klas
	left join administratieveGegevens as a 
	  on l.inschrijvingsNr=a.inschrijvingsNr 
	left join (select distinct inschrijvingsNr,klas,jaar,
		   case right(left(attestcode,2),1) when 'A' then '1'
						      when 'B' then '2'
						      when 'C' then '3'
						      else '4' end
			as attest
		     from studiegegevens.dbo.beslis 
		     where jaar = @vorigJaar) as b
	  on l.inschrijvingsNr = b.inschrijvingsNr 
	left join #historiekHulptabel as vk
				on vk.inschrijvingsNr = b.inschrijvingsNr
					and vk.schooljaar = b.jaar  
	left join studiegegevens.dbo.gestartVerlaten as start
				on start.inschrijvingsNr = vk.inschrijvingsNr
				  	and start.schoolnummer = vk.schoolnummer 
	left join studiegegevens.dbo.stamboekVertaalTabelklas as vtk
				on vtk.klas = b.klas 
where (len(l.stamNr) = 7) and (l.klas <> 'weg')
order by l.klas,l.naam1